/*
 * Broadcom device-specific manifest constants.
 *
 * Copyright (C) 1999-2011, Broadcom Corporation
 *
 *      Unless you and Broadcom execute a separate written software license
 * agreement governing use of this software, this software is licensed to you
 * under the terms of the GNU General Public License version 2 (the "GPL"),
 * available at http://www.broadcom.com/licenses/GPLv2.php, with the
 * following added to such license:
 *
 *      As a special exception, the copyright holders of this software give you
 * permission to link this software with independent modules, and to copy and
 * distribute the resulting executable under terms of your choice, provided that
 * you also meet, for each linked independent module, the terms and conditions of
 * the license of that module.  An independent module is a module which is not
 * derived from this software.  The special exception does not apply to any
 * modifications of the software.
 *
 *      Notwithstanding the above, under no circumstances may you combine this
 * software in any way with any other Broadcom software provided under a license
 * other than the GPL, without Broadcom's express prior written consent.
 *
 * $Id: bcmdevs.h 306883 2012-01-09 21:47:42Z $
 */

#ifndef	_BCMDEVS_H
#define	_BCMDEVS_H


#define	VENDOR_EPIGRAM		0xfeda
#define	VENDOR_BROADCOM		0x14e4
#define	VENDOR_3COM		0x10b7
#define	VENDOR_NETGEAR		0x1385
#define	VENDOR_DIAMOND		0x1092
#define	VENDOR_INTEL		0x8086
#define	VENDOR_DELL		0x1028
#define	VENDOR_HP		0x103c
#define	VENDOR_HP_COMPAQ	0x0e11
#define	VENDOR_APPLE		0x106b
#define VENDOR_SI_IMAGE		0x1095
#define VENDOR_BUFFALO		0x1154
#define VENDOR_TI		0x104c
#define VENDOR_RICOH		0x1180
#define VENDOR_JMICRON		0x197b



#define	VENDOR_BROADCOM_PCMCIA	0x02d0


#define	VENDOR_BROADCOM_SDIO	0x00BF


#define BCM_DNGL_VID		0x0a5c
#define BCM_DNGL_BL_PID_4328	0xbd12
#define BCM_DNGL_BL_PID_4322	0xbd13
#define BCM_DNGL_BL_PID_4319    0xbd16
#define BCM_DNGL_BL_PID_43236   0xbd17
#define BCM_DNGL_BL_PID_4332	0xbd18
#define BCM_DNGL_BL_PID_4330	0xbd19
#define BCM_DNGL_BL_PID_4334	0xbd1a
#define BCM_DNGL_BL_PID_43239   0xbd1b
#define BCM_DNGL_BL_PID_4324	0xbd1c
#define BCM_DNGL_BL_PID_4360	0xbd1d

#define BCM_DNGL_BDC_PID	0x0bdc
#define BCM_DNGL_JTAG_PID	0x4a44


#define BCM_HWUSB_PID_43239     43239


#define	BCM4210_DEVICE_ID	0x1072
#define	BCM4230_DEVICE_ID	0x1086
#define	BCM4401_ENET_ID		0x170c
#define	BCM3352_DEVICE_ID	0x3352
#define	BCM3360_DEVICE_ID	0x3360
#define	BCM4211_DEVICE_ID	0x4211
#define	BCM4231_DEVICE_ID	0x4231
#define	BCM4303_D11B_ID		0x4303
#define	BCM4311_D11G_ID		0x4311
#define	BCM4311_D11DUAL_ID	0x4312
#define	BCM4311_D11A_ID		0x4313
#define	BCM4328_D11DUAL_ID	0x4314
#define	BCM4328_D11G_ID		0x4315
#define	BCM4328_D11A_ID		0x4316
#define	BCM4318_D11G_ID		0x4318
#define	BCM4318_D11DUAL_ID	0x4319
#define	BCM4318_D11A_ID		0x431a
#define	BCM4325_D11DUAL_ID	0x431b
#define	BCM4325_D11G_ID		0x431c
#define	BCM4325_D11A_ID		0x431d
#define	BCM4306_D11G_ID		0x4320
#define	BCM4306_D11A_ID		0x4321
#define	BCM4306_UART_ID		0x4322
#define	BCM4306_V90_ID		0x4323
#define	BCM4306_D11DUAL_ID	0x4324
#define	BCM4306_D11G_ID2	0x4325
#define	BCM4321_D11N_ID		0x4328
#define	BCM4321_D11N2G_ID	0x4329
#define	BCM4321_D11N5G_ID	0x432a
#define BCM4322_D11N_ID		0x432b
#define BCM4322_D11N2G_ID	0x432c
#define BCM4322_D11N5G_ID	0x432d
#define BCM4329_D11N_ID		0x432e
#define BCM4329_D11N2G_ID	0x432f
#define BCM4329_D11N5G_ID	0x4330
#define	BCM4315_D11DUAL_ID	0x4334
#define	BCM4315_D11G_ID		0x4335
#define	BCM4315_D11A_ID		0x4336
#define BCM4319_D11N_ID		0x4337
#define BCM4319_D11N2G_ID	0x4338
#define BCM4319_D11N5G_ID	0x4339
#define BCM43231_D11N2G_ID	0x4340
#define BCM43221_D11N2G_ID	0x4341
#define BCM43222_D11N_ID	0x4350
#define BCM43222_D11N2G_ID	0x4351
#define BCM43222_D11N5G_ID	0x4352
#define BCM43224_D11N_ID	0x4353
#define BCM43224_D11N_ID_VEN1	0x0576
#define BCM43226_D11N_ID	0x4354
#define BCM43236_D11N_ID	0x4346
#define BCM43236_D11N2G_ID	0x4347
#define BCM43236_D11N5G_ID	0x4348
#define BCM43225_D11N2G_ID	0x4357
#define BCM43421_D11N_ID	0xA99D
#define BCM4313_D11N2G_ID	0x4727
#define BCM4330_D11N_ID         0x4360
#define BCM4330_D11N2G_ID       0x4361
#define BCM4330_D11N5G_ID       0x4362
#define BCM4336_D11N_ID		0x4343
#define BCM6362_D11N_ID		0x435f
#define BCM4331_D11N_ID		0x4331
#define BCM4331_D11N2G_ID	0x4332
#define BCM4331_D11N5G_ID	0x4333
#define BCM43237_D11N_ID	0x4355
#define BCM43237_D11N5G_ID	0x4356
#define BCM43227_D11N2G_ID	0x4358
#define BCM43228_D11N_ID	0x4359
#define BCM43228_D11N5G_ID	0x435a
#define BCM43362_D11N_ID	0x4363
#define BCM43239_D11N_ID	0x4370
#define BCM4324_D11N_ID		0x4374
#define BCM43217_D11N2G_ID	0x43a9
#define BCM43131_D11N2G_ID	0x43aa
#define BCM4314_D11N2G_ID	0x4364
#define BCM43142_D11N2G_ID	0x4365
#define BCM4334_D11N_ID		0x4380
#define BCM4334_D11N2G_ID	0x4381
#define BCM4334_D11N5G_ID	0x4382
#define BCM4360_D11AC_ID	0x43a0
#define BCM4360_D11AC2G_ID	0x43a1
#define BCM4360_D11AC5G_ID	0x43a2


#define BCM943228HMB_SSID_VEN1	0x0607
#define BCM94313HMGBL_SSID_VEN1	0x0608
#define BCM94313HMG_SSID_VEN1	0x0609


#define BCM4335_D11AC_ID	0x43a9
#define BCM4335_D11AC2G_ID	0x43aa
#define BCM4335_D11AC5G_ID	0x43ab

#define	BCMGPRS_UART_ID		0x4333
#define	BCMGPRS2_UART_ID	0x4344
#define FPGA_JTAGM_ID		0x43f0
#define BCM_JTAGM_ID		0x43f1
#define SDIOH_FPGA_ID		0x43f2
#define BCM_SDIOH_ID		0x43f3
#define SDIOD_FPGA_ID		0x43f4
#define SPIH_FPGA_ID		0x43f5
#define BCM_SPIH_ID		0x43f6
#define MIMO_FPGA_ID		0x43f8
#define BCM_JTAGM2_ID		0x43f9
#define SDHCI_FPGA_ID		0x43fa
#define	BCM4402_ENET_ID		0x4402
#define	BCM4402_V90_ID		0x4403
#define	BCM4410_DEVICE_ID	0x4410
#define	BCM4412_DEVICE_ID	0x4412
#define	BCM4430_DEVICE_ID	0x4430
#define	BCM4432_DEVICE_ID	0x4432
#define	BCM4704_ENET_ID		0x4706
#define	BCM4710_DEVICE_ID	0x4710
#define	BCM47XX_AUDIO_ID	0x4711
#define	BCM47XX_V90_ID		0x4712
#define	BCM47XX_ENET_ID		0x4713
#define	BCM47XX_EXT_ID		0x4714
#define	BCM47XX_GMAC_ID		0x4715
#define	BCM47XX_USBH_ID		0x4716
#define	BCM47XX_USBD_ID		0x4717
#define	BCM47XX_IPSEC_ID	0x4718
#define	BCM47XX_ROBO_ID		0x4719
#define	BCM47XX_USB20H_ID	0x471a
#define	BCM47XX_USB20D_ID	0x471b
#define	BCM47XX_ATA100_ID	0x471d
#define	BCM47XX_SATAXOR_ID	0x471e
#define	BCM47XX_GIGETH_ID	0x471f
#define	BCM4712_MIPS_ID		0x4720
#define	BCM4716_DEVICE_ID	0x4722
#define BCM47XX_SMBUS_EMU_ID	0x47fe
#define	BCM47XX_XOR_EMU_ID	0x47ff
#define	EPI41210_DEVICE_ID	0xa0fa
#define	EPI41230_DEVICE_ID	0xa10e
#define JINVANI_SDIOH_ID	0x4743
#define BCM27XX_SDIOH_ID	0x2702
#define PCIXX21_FLASHMEDIA_ID	0x803b
#define PCIXX21_SDIOH_ID	0x803c
#define R5C822_SDIOH_ID		0x0822
#define JMICRON_SDIOH_ID	0x2381


#define	BCM4306_CHIP_ID		0x4306
#define	BCM4311_CHIP_ID		0x4311
#define	BCM43111_CHIP_ID	43111
#define	BCM43112_CHIP_ID	43112
#define	BCM4312_CHIP_ID		0x4312
#define BCM4313_CHIP_ID		0x4313
#define	BCM43131_CHIP_ID	43131
#define	BCM4315_CHIP_ID		0x4315
#define	BCM4318_CHIP_ID		0x4318
#define	BCM4319_CHIP_ID		0x4319
#define	BCM4320_CHIP_ID		0x4320
#define	BCM4321_CHIP_ID		0x4321
#define	BCM43217_CHIP_ID	43217
#define	BCM4322_CHIP_ID		0x4322
#define	BCM43221_CHIP_ID	43221
#define	BCM43222_CHIP_ID	43222
#define	BCM43224_CHIP_ID	43224
#define	BCM43225_CHIP_ID	43225
#define	BCM43227_CHIP_ID	43227
#define	BCM43228_CHIP_ID	43228
#define	BCM43226_CHIP_ID	43226
#define	BCM43231_CHIP_ID	43231
#define	BCM43234_CHIP_ID	43234
#define	BCM43235_CHIP_ID	43235
#define	BCM43236_CHIP_ID	43236
#define	BCM43237_CHIP_ID	43237
#define	BCM43238_CHIP_ID	43238
#define	BCM43239_CHIP_ID	43239
#define	BCM43420_CHIP_ID	43420
#define	BCM43421_CHIP_ID	43421
#define	BCM43428_CHIP_ID	43428
#define	BCM43431_CHIP_ID	43431
#define	BCM43460_CHIP_ID	43460
#define	BCM4325_CHIP_ID		0x4325
#define	BCM4328_CHIP_ID		0x4328
#define	BCM4329_CHIP_ID		0x4329
#define	BCM4331_CHIP_ID		0x4331
#define BCM4336_CHIP_ID		0x4336
#define BCM43362_CHIP_ID	43362
#define BCM4330_CHIP_ID		0x4330
#define BCM6362_CHIP_ID		0x6362
#define BCM4314_CHIP_ID		0x4314
#define BCM43142_CHIP_ID	43142
#define	BCM4324_CHIP_ID		0x4324
#define	BCM43242_CHIP_ID	43242
#define BCM4334_CHIP_ID		0x4334
#define BCM4360_CHIP_ID		0x4360

#define BCM4335_CHIP_ID         0x4335

#define	BCM4342_CHIP_ID		4342
#define	BCM4402_CHIP_ID		0x4402
#define	BCM4704_CHIP_ID		0x4704
#define	BCM4706_CHIP_ID		0x5300
#define	BCM4710_CHIP_ID		0x4710
#define	BCM4712_CHIP_ID		0x4712
#define	BCM4716_CHIP_ID		0x4716
#define	BCM47162_CHIP_ID	47162
#define	BCM4748_CHIP_ID		0x4748
#define	BCM4749_CHIP_ID		0x4749
#define BCM4785_CHIP_ID		0x4785
#define	BCM5350_CHIP_ID		0x5350
#define	BCM5352_CHIP_ID		0x5352
#define	BCM5354_CHIP_ID		0x5354
#define BCM5365_CHIP_ID		0x5365
#define	BCM5356_CHIP_ID		0x5356
#define	BCM5357_CHIP_ID		0x5357
#define	BCM53572_CHIP_ID	53572


#define	BCM4303_PKG_ID		2
#define	BCM4309_PKG_ID		1
#define	BCM4712LARGE_PKG_ID	0
#define	BCM4712SMALL_PKG_ID	1
#define	BCM4712MID_PKG_ID	2
#define BCM4328USBD11G_PKG_ID	2
#define BCM4328USBDUAL_PKG_ID	3
#define BCM4328SDIOD11G_PKG_ID	4
#define BCM4328SDIODUAL_PKG_ID	5
#define BCM4329_289PIN_PKG_ID	0
#define BCM4329_182PIN_PKG_ID	1
#define BCM5354E_PKG_ID		1
#define	BCM4716_PKG_ID		8
#define	BCM4717_PKG_ID		9
#define	BCM4718_PKG_ID		10
#define BCM5356_PKG_NONMODE	1
#define BCM5358U_PKG_ID		8
#define BCM5358_PKG_ID		9
#define BCM47186_PKG_ID		10
#define BCM5357_PKG_ID		11
#define BCM5356U_PKG_ID		12
#define BCM53572_PKG_ID		8
#define BCM5357C0_PKG_ID	8
#define BCM47188_PKG_ID		9
#define BCM5358C0_PKG_ID	0xa
#define BCM5356C0_PKG_ID	0xb
#define BCM4331TT_PKG_ID        8
#define BCM4331TN_PKG_ID        9
#define BCM4331TNA0_PKG_ID     0xb
#define	BCM4706L_PKG_ID		1

#define HDLSIM5350_PKG_ID	1
#define HDLSIM_PKG_ID		14
#define HWSIM_PKG_ID		15
#define BCM43224_FAB_CSM	0x8
#define BCM43224_FAB_SMIC	0xa
#define BCM4336_WLBGA_PKG_ID	0x8
#define BCM4330_WLBGA_PKG_ID	0x0
#define BCM4314PCIE_ARM_PKG_ID		(8 | 0)
#define BCM4314SDIO_PKG_ID		(8 | 1)
#define BCM4314PCIE_PKG_ID		(8 | 2)
#define BCM4314SDIO_ARM_PKG_ID		(8 | 3)
#define BCM4314SDIO_FPBGA_PKG_ID	(8 | 4)
#define BCM4314DEV_PKG_ID		(8 | 6)

#define PCIXX21_FLASHMEDIA0_ID	0x8033
#define PCIXX21_SDIOH0_ID	0x8034


#define	BFL_BTC2WIRE		0x00000001
#define BFL_BTCOEX      0x00000001
#define	BFL_PACTRL		0x00000002
#define BFL_AIRLINEMODE	0x00000004
#define	BFL_ADCDIV		0x00000008
#define	BFL_ENETROBO		0x00000010
#define	BFL_NOPLLDOWN		0x00000020
#define	BFL_CCKHIPWR		0x00000040
#define	BFL_ENETADM		0x00000080
#define	BFL_ENETVLAN		0x00000100
#define	BFL_UNUSED		0x00000200
#define BFL_NOPCI		0x00000400
#define BFL_FEM			0x00000800
#define BFL_EXTLNA		0x00001000
#define BFL_HGPA		0x00002000
#define	BFL_BTC2WIRE_ALTGPIO	0x00004000
#define	BFL_ALTIQ		0x00008000
#define BFL_NOPA		0x00010000
#define BFL_RSSIINV		0x00020000
#define BFL_PAREF		0x00040000
#define BFL_3TSWITCH		0x00080000
#define BFL_PHASESHIFT		0x00100000
#define BFL_BUCKBOOST		0x00200000
#define BFL_FEM_BT		0x00400000
#define BFL_NOCBUCK		0x00800000
#define BFL_CCKFAVOREVM		0x01000000
#define BFL_PALDO		0x02000000
#define BFL_LNLDO2_2P5		0x04000000
#define BFL_FASTPWR		0x08000000
#define BFL_UCPWRCTL_MININDX	0x08000000
#define BFL_EXTLNA_5GHz		0x10000000
#define BFL_TRSW_1by2		0x20000000
#define BFL_LO_TRSW_R_5GHz	0x40000000
#define BFL_ELNA_GAINDEF	0x80000000
#define BFL_EXTLNA_TX	0x20000000


#define BFL2_RXBB_INT_REG_DIS	0x00000001
#define BFL2_APLL_WAR		0x00000002
#define BFL2_TXPWRCTRL_EN	0x00000004
#define BFL2_2X4_DIV		0x00000008
#define BFL2_5G_PWRGAIN		0x00000010
#define BFL2_PCIEWAR_OVR	0x00000020
#define BFL2_CAESERS_BRD	0x00000040
#define BFL2_BTC3WIRE		0x00000080
#define BFL2_BTCLEGACY          0x00000080
#define BFL2_SKWRKFEM_BRD	0x00000100
#define BFL2_SPUR_WAR		0x00000200
#define BFL2_GPLL_WAR		0x00000400
#define BFL2_TRISTATE_LED	0x00000800
#define BFL2_SINGLEANT_CCK	0x00001000
#define BFL2_2G_SPUR_WAR	0x00002000
#define BFL2_BPHY_ALL_TXCORES	0x00004000
#define BFL2_FCC_BANDEDGE_WAR	0x00008000
#define BFL2_GPLL_WAR2	        0x00010000
#define BFL2_IPALVLSHIFT_3P3    0x00020000
#define BFL2_INTERNDET_TXIQCAL  0x00040000
#define BFL2_XTALBUFOUTEN       0x00080000



#define BFL2_ANAPACTRL_2G	0x00100000
#define BFL2_ANAPACTRL_5G	0x00200000
#define BFL2_ELNACTRL_TRSW_2G	0x00400000
#define BFL2_BT_SHARE_ANT0	0x00800000
#define BFL2_TEMPSENSE_HIGHER	0x01000000
#define BFL2_BTC3WIREONLY       0x02000000
#define BFL2_PWR_NOMINAL	0x04000000
#define BFL2_EXTLNA_PWRSAVE	0x08000000

#define BFL2_4313_RADIOREG	0x10000000

#define BFL2_SDR_EN		0x20000000


#define	BOARD_GPIO_BTC3W_IN	0x850
#define	BOARD_GPIO_BTC3W_OUT	0x020
#define	BOARD_GPIO_BTCMOD_IN	0x010
#define	BOARD_GPIO_BTCMOD_OUT	0x020
#define	BOARD_GPIO_BTC_IN	0x080
#define	BOARD_GPIO_BTC_OUT	0x100
#define	BOARD_GPIO_PACTRL	0x200
#define BOARD_GPIO_12		0x1000
#define BOARD_GPIO_13		0x2000
#define BOARD_GPIO_BTC4_IN	0x0800
#define BOARD_GPIO_BTC4_BT	0x2000
#define BOARD_GPIO_BTC4_STAT	0x4000
#define BOARD_GPIO_BTC4_WLAN	0x8000
#define	BOARD_GPIO_1_WLAN_PWR	0x02
#define	BOARD_GPIO_3_WLAN_PWR	0x08
#define	BOARD_GPIO_4_WLAN_PWR	0x10

#define GPIO_BTC4W_OUT_4312  0x010
#define GPIO_BTC4W_OUT_43224  0x020
#define GPIO_BTC4W_OUT_43224_SHARED  0x0e0
#define GPIO_BTC4W_OUT_43225  0x0e0
#define GPIO_BTC4W_OUT_43421  0x020
#define GPIO_BTC4W_OUT_4313  0x060
#define GPIO_BTC4W_OUT_4331_SHARED  0x010

#define	PCI_CFG_GPIO_SCS	0x10
#define PCI_CFG_GPIO_HWRAD	0x20
#define PCI_CFG_GPIO_XTAL	0x40
#define PCI_CFG_GPIO_PLL	0x80


#define PLL_DELAY		150
#define FREF_DELAY		200
#define MIN_SLOW_CLK		32
#define	XTAL_ON_DELAY		1000



#define GPIO_NUMPINS		32


#define RDL_RAM_BASE_4319 0x60000000
#define RDL_RAM_BASE_4329 0x60000000
#define RDL_RAM_SIZE_4319 0x48000
#define RDL_RAM_SIZE_4329  0x48000
#define RDL_RAM_SIZE_43236 0x70000
#define RDL_RAM_BASE_43236 0x60000000
#define RDL_RAM_SIZE_4328 0x60000
#define RDL_RAM_BASE_4328 0x80000000
#define RDL_RAM_SIZE_4322 0x60000
#define RDL_RAM_BASE_4322 0x60000000


#define MUXENAB_UART		0x00000001
#define MUXENAB_GPIO		0x00000002
#define MUXENAB_ERCX		0x00000004
#define MUXENAB_JTAG		0x00000008
#define MUXENAB_HOST_WAKE	0x00000010
#define MUXENAB_I2S_EN		0x00000020
#define MUXENAB_I2S_MASTER	0x00000040
#define MUXENAB_I2S_FULL	0x00000080
#define MUXENAB_SFLASH		0x00000100
#define MUXENAB_RFSWCTRL0	0x00000200
#define MUXENAB_RFSWCTRL1	0x00000400
#define MUXENAB_RFSWCTRL2	0x00000800
#define MUXENAB_SECI		0x00001000
#define MUXENAB_BT_LEGACY	0x00002000
#define MUXENAB_HOST_WAKE1	0x00004000


#define FLASH_KERNEL_NFLASH	0x00000001
#define FLASH_BOOT_NFLASH	0x00000002

#endif
